#include "com.hpp"
#include "log.hpp"

using namespace std;

//管道管理
int main()
{

	//logmsg(Info,"hello");
	//创建管道
	// int n = mkfifo(FILE_PATH,MODE);
	// if(n == -1){
	// 	// printf("%d : %s\n",errno,strerror);
	// 	perror("mkfifo:");
	// 	exit(FIFO_CREATE_ERR);
	// }
	Init init;
	log note;
	//打开管道
	int fd = open(FILE_PATH,O_RDONLY);
	if(fd < 0){
		// perror("open:");
		note(Fatal,"error string:%s,error code:%d",strerror(errno),errno);
		exit(FIFO_OPEN_ERR);
	}
	cout << "server open file done" << endl;  //说明读端打开后要等待写端打开才会往后运行，否则堵塞
	note.Enable(Classfile);
	note(Info,"server open file done,error string:%s,error code:%d",strerror(errno),errno);
	note(Warnning,"server open file done,error string:%s,error code:%d",strerror(errno),errno);
	note(Error,"server open file done,error string:%s,error code:%d",strerror(errno),errno);
	note(Debug,"server open file done,error string:%s,error code:%d",strerror(errno),errno);

	//开始通信
	while(true){
		char buffer[1024];
		int n = read(fd,buffer,sizeof(buffer));
		if(n > 0){
			buffer[n] = '\0';
			cout << "client get me msg:" << buffer << endl;
		}
		else if(n == 0) {
			cout << "client quit , me too" << endl;
			note(Debug,"client quit , me too,error string:%s,error code:%d",strerror(errno),errno);

			break;
		}
		else{
			perror("read:");
			exit(FIFO_READ_ERR);
		}
	}

	// sleep(6);

	//关闭管道
	close(fd);

	// int ret = unlink(FILE_PATH);
	// if(ret == -1){
	// 	perror("unlink");
	// 	exit(FIFO_DELETE_ERR);
	// }
	return 0;
}